Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Sistemas operativos. Administración de procesos (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Problemas clásicos de comunicación y sincronización (5)
Solución al problema de la sección crítica
La estructura general de cualquier mecanismo para resolver el problema de la sección crítica es:
Entrada en la sección crítica
Código de la sección crítica
Salida de la sección crítica
Los tres requisitos que debe tener cualquier solución del problema de la sección critica son:
Exclusión mutua
Si un proceso está ejecutando un código de la sección crítica, ningún otro proceso lo podrá hacer.
Progreso
Si ningún procesos esta ejecutando dentro de la sección crítica, la decisión de qué proceso entra en la sección se hará sobre los procesos que desean entrar, tal decisión debe realizarse en un tiempo finito.
Espera acotada
Debe haber un límite en el número de veces que se permite que los demás procesos entren a ejecutar código de la sección crítica.

Monografias.com

Problemas clásicos de comunicación y sincronización (6)
Problema del productor-consumidor
Uno o más procesos, los “productores”, generan un cierto tipo de datos que son utilizados por otros procesos, los “consumidores”.
Es necesario un mecanismo de comunicación para que productores y consumidores intercambien información.
Cuando el mecanismo de comunicación se llena el productor debe dejar de producir.
Cuando el mecanismo de comunicación está vacío el lector debe esperar a que se produzca un dato

Monografias.com

Problemas clásicos de comunicación y sincronización (7)
El problema de los lectores-escritores
Existe un determinado objeto que va a ser utilizado y compartido por una serie de procesos concurrentes.
Algunos procesos solo acceden al objeto sin modificarlo y algunos acceden para modificarlo, lo que lleva a algunas restricciones:
Solo se permite que un escritor tenga acceso al mismo tiempo.
Se permite cualquier numero de lectores accediendo al mismo tiempo.

Monografias.com

Problemas clásicos de comunicación y sincronización (8)
Comunicación clienteservidor
Existen procesos llamados servidores que ofrecen una serie de servicios a otros proceso denominados clientes.
El proceso servidor puede residir en la misma máquina o en una máquina distinta.
Se utilizan técnicas basadas en el paso de mensajes.

Monografias.com

Mecanismos de comunicación y sincronización
El SO ofrece una serie de servicios que permiten a los procesos comunicarse y sincronizarse.
Principales mecanismos de comunicación:
Archivos.
Tuberías.
Variables en memoria compartida.
Paso de mensajes.
Principales mecanismos de sincronización:
Tuberías.
Semáforos.
Mutex y variables condicionales.
Paso de mensajes.

Monografias.com

Mecanismos de comunicación y sincronización (2)
Archivos
Es un mecanismo que puede utilizarse para comunicar procesos.
Presenta las siguientes ventajas:
Permite comunicar un número potencialmente ilimitado de proceso.
Los servidores de archivos ofrecen servicios sencillos y fáciles de utilizar.
También presenta una serie de inconvenientes:
Es poco eficiente, la escritura y lectura a disco es lenta.
Necesita de algún otro mecanismo que permita que los procesos se sincronicen en el acceso de los datos almacenados en el archivo.

Monografias.com

Mecanismos de comunicación y sincronización (3)
Tuberías
Es un mecanismo de comunicación y sincronización.
Existen dos tipos:
Tuberías sin nombre (pipe)
Solo el proceso que la crea y sus descendientes pueden utilizarla.
Tuberías con nombre (FIFO)
Para los procesos que no guardan ninguna relación de parentesco.
Conceptualmente cada proceso ve a la tubería como un conducto con dos extremos, uno para insertar y otro para extraer datos de la tubería.

Monografias.com

Mecanismos de comunicación y sincronización (4)
Comunicación bidireccional con tuberías.

Monografias.com

Mecanismos de comunicación y sincronización (5)
Escritura en una tubería
Introduce los datos en orden FIFO
Si tubería llena se bloquea el escritor.
Si no hay lectores se retorna el error correspondiente.
Lectura de una tubería
Recupera los datos en el orden en que se introdujeron.
Si tubería vacía se bloquea el lector.
Si la tubería almacena M bytes y se quieren leer n bytes, entonces:
Si M = n, se recuperan n bytes
Si M < n, se recuperan M bytes
Si no hay escritores y la tubería está vacía se retorna fin de archivo
Ambas operaciones (escritura y lectura) son atómicas, es decir, si dos procesos intenta acceder al mismo tiempo, uno de ellos se bloqueará.

Monografias.com

Mecanismos de comunicación y sincronización (6)
Sección crítica con tuberías
La solución consiste en crear una tubería y escribir en ella un dato testigo.
Escrito el dato testigo, los procesos protegen su código de la sección crítica.
Ej:
Leer dato de la tubería
Código correspondiente a la sección crítica
Escribir el dato en la tubería
void main(void){
int fildes[2];
char c;

pipe(fildes);
write(fildes[1], &c, 1);

if( fork() == 0){
for( ; ; ){
read( fildes[0], &c, 1);
/*SECCION CRITICA*/
write( fildes[1], &c, 1);
}
}
else{
for( ; ; ){
read( fildes[0], &c, 1);
/*SECCION CRITICA*/
write( fildes[1], &c, 1);
}
}

Monografias.com

Mecanismos de comunicación y sincronización (7)
Productor-consumidor con tuberías
Cuando el productor ha elaborado un elemento lo escribe en la tubería.
Cuando el consumidor quiere procesar algún elemento lo lee de la tubería.
void main(void){
int fildes[2];
int dato_p[4];
char dato_c;

pipe(fildes);

if( fork() == 0){
for( ; ; ){
/*PRODUCIR DATO p*/
write( fildes[1], dato_p, 4*sizeof(int));
}
}
else{
for( ; ; ){
read( fildes[0], &dato_c, sizeof(int));
/*CONSUMIR DATO p*/
}
}

Monografias.com

Mecanismos de comunicación y sincronización (8)
Semáforos
Mecanismo de sincronización que se utiliza generalmente en sistemas con memoria compartida.
Es un objeto con un valor entero
Se le puede asignar un valor inicial no negativo.
Se accede mediante dos operaciones atómicas:
wait
signal
wait(s)
{
s = s-1;
if( s < 0 )
{
/*BLOQUEAR PROCESO*/
}
}

signal(s)
{
s = s+1;
if( s < = 0)
{
/*DESBLOQUEAR UN PROCESO
BLOQUEADO POR WAIT*/
}
}

Monografias.com

Mecanismos de comunicación y sincronización (9)
Sección crítica con semáforos
wait(s); /*Entrada a la sección crítica*/
< sección crítica>
signal(s); /*Salida de la sección crítica*/

Monografias.com

Mecanismos de comunicación y sincronización (10)
Productor-Consumidor con semáforos
Se usa un buffer circular compartido por ambos procesos.
Existen dos tipos de recursos: elementos y huecos. Un semáforo por cada uno.
Productor ( ){
int posicion = 0;
for( ; ; ){
Producir un dato;
wait (huecos);
buffer[posicion] = dato;
posicion = (posicion + 1) % TAMBUFF;
signal (elementos);
}
}

Consumidor ( ){
int posicion = 0;
for( ; ; ){
wait (elementos);
dato = buffer [posicion];
posicion = (posicion + 1) % TAMBUFF;
signal (huecos);
Consumir el dato;
}
}

Monografias.com

Mecanismos de comunicación y sincronización (11)
Memoria compartida
Permite comunicar a procesos que se ejecutan en la misma máquina.
Dos procesos acceden a una misma variable.

Monografias.com

Mecanismos de comunicación y sincronización (12)
Mutex
Son mecanismos de sincronización especiales para hilos.
Es un semáforo binario con dos operaciones atómicas:
lock(m) Intenta bloquear el mutex, si el mutex ya está bloqueado el hilo se suspende.
unlock(m) Desbloquea el mutex, si existen procesos bloqueados en el mutex se desbloquea uno.
variables condicionales
Variables de sincronización asociadas a un mutex
Conviene ejecutarlas entre un lock y unlock
Dos operaciones atómicas
wait Bloquea el hilo y lo expulsa del mutex
signal Desbloquea uno o varios procesos suspendidos en la variable condicional. El hilo que despierta compite nuevamente por el mutex.

Monografias.com

Mecanismos de comunicación y sincronización (13)
Sección critica con mutex
La operación unlock debe realizarla el hilo que ejecutó el lock
lock (m);
< sección crítica >
unlock (m);

Monografias.com

Paso de mensajes
Son especialmente útiles cuando se necesita comunicar y sincronizar procesos que se ejecutan en máquinas distintas.
Permiten resolver:
Exclusión mutua
Sincronización entre un proceso que recibe un mensaje y otro que lo envía.
Comunicación entre espacios de memoria diferentes (en la misma computadora o de una computadora a otra)
Se tienen dos primitivas básicas:
send (destino, mensaje) envía un mensaje al proceso destino.
receive (destino, mensaje) recibe un mensaje del proceso destino.

Monografias.com

Paso de mensajes (2)
Aspectos de implementación
Tamaño del mensaje
Tamaño (fijo o variable)
Flujo de datos
Unidireccional o bidireccional
Nombrado
Directo
Nombrar de forma explicita al proceso receptor o emisor
Indirecto
El menaje es enviado a través de colas de mensajes o puertos.
Sincronización
Tres combinaciones habituales
Envío y recepción bloqueante
Envío no bloqueante y recepción bloqueante
Envío y recepción no bloqueante
Almacenamiento
Tiene o no tiene capacidad para almacenar mensajes.

Monografias.com

Paso de mensajes (3)
Uso de colas y puertos para comunicación indirecta

Monografias.com

Aspectos de implementación de los mecanismos de sincronización
Todo mecanismo de sincronización conlleva un bloqueo bajo determinadas circunstancias y se puede conseguir de dos formas:
Espera activa
Los procesos efectúan un ciclo continúo hasta que pueden continuar, lo que representa un problema en sistemas multiprogramados.
Espera pasiva
La operación de bloqueo coloca un proceso en una cola de espera asociada al mecanismo de sincronización y transfiere el control al planificador.

Monografias.com

Aspectos de implementación de los mecanismos de sincronización (2)
Implementación de los mecanismos de sincronización

Monografias.com

Aspectos de implementación de los mecanismos de sincronización (3)
Implementación de las espera pasiva
Operaciones para bloquear a un proceso en un semáforo

Monografias.com

Aspectos de implementación de los mecanismos de sincronización (4)
Implementación de las espera pasiva
Operaciones para desbloquear a un proceso bloqueado en un semáforo

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter